package cc.rengu.igas.momp.common.dao;

import cc.rengu.igas.momp.common.entity.TMTxnOrderDet;

import java.util.List;

/**
 * 订单明细表数据库操作接口定义
 *
 * @author Jinan Liu
 * @version 1.0.0
 * @date 2020/4/17 10:20
 */

public interface TMTxnOrderDetMapper {

    /**
     * 新增单条订单明细数据库操作接口定义
     *
     * @param tmTxnOrderDet 订单明细表
     * @return int 返回码
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/4/17 10:28
     */
    int insertSingleRecordIntoTMTxnOrderDet(TMTxnOrderDet tmTxnOrderDet) throws Exception;

    /**
     * 新增多条订单明细数据库操作接口实现
     *
     * @param tmTxnOrderDetList 订单明细表
     * @return int 返回码
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2020/6/4 11:45
     */
    int insertTMTxnOrderDetList(List<TMTxnOrderDet> tmTxnOrderDetList) throws Exception;

    /**
     * 查询原交易订单明细信息数据库接口定义
     *
     * @param instId        法人机构号
     * @param origTransDate 原交易日期
     * @param origTraceNo   原交易流水号
     * @return java.util.List<cc.rengu.igas.momp.common.entity.TMTxnOrderDet> 订单明细表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/4/26 11:13
     */
    List<TMTxnOrderDet> selectOriginalTransactionOrderDetailListInfo(String instId, String origTransDate, String origTraceNo) throws Exception;

    /**
     * 更新单条订单明细记录状态数据库接口定义
     *
     * @param tmTxnOrderDet 订单明细表
     * @return int 返回码
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/6/11 21:23
     */
    int updateSingleOriginalTransactionOrderDetailStatusInfo(TMTxnOrderDet tmTxnOrderDet) throws Exception;

    /**
     * 更新订单明细信息数据库接口定义
     *
     * @param tmTxnOrderDet 订单明细表
     * @return int 返回码
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2020/5/14
     */
    int updateTmTxnOrderDetByKey(TMTxnOrderDet tmTxnOrderDet) throws Exception;

    /**
     * 查询交易订单明细信息数据库接口定义
     *
     * @param instId  法人机构号
     * @param txnDate 交易日期
     * @param userId  用户编号
     * @param mcNo    活动编号
     * @return java.util.List<cc.rengu.igas.momp.common.entity.TMTxnOrderDet> 订单明细表
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2020/11/12 11:13
     */
    List<TMTxnOrderDet> selectUserOrderDetailListInfo(String instId, String txnDate, String userId, String mcNo) throws Exception;
}
